package com.osfw.activiti.entity.history;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.experimental.Accessors;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 历史流程变量表
 */
@Data
@Accessors(chain = true)
public class ActHiVarinst {

    /* 流程参数ID */
    @TableId(value = "proc_var_id_", type = IdType.ASSIGN_ID)
    private Long procVarId;

    /* 流程实例ID */
    @TableField(value = "proc_inst_id_")
    private Long procInstId;

    /* 流程执行ID（执行ID & 任务ID 为空时，该参数为全局参数） */
    @TableField(value = "proc_exec_id_")
    private Long procExecId;

    /* 流程任务ID（执行ID & 任务ID 为空时，该参数为全局参数） */
    @TableField(value = "proc_task_id_")
    private Long procTaskId;

    /* 参数类型（integer，string，double，json） */
    @TableField(value = "var_type_")
    private String varType;

    /* 参数名 */
    @TableField(value = "var_name_")
    private String varName;

    /* 参数值 */
    @TableField(value = "var_value_")
    private String varValue;

    /* 参数描述 */
    @TableField(value = "var_description_")
    private String varDescription;

    /* 创建时间 */
    @TableField(value = "create_time_")
    private Date createTime;

    /* 最新修改时间 */
    @TableField(value = "last_updated_time_")
    private Date lastUpdatedTime;


    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("procVarId", getProcVarId())
                .append("procInstId", getProcInstId())
                .append("procExecId", getProcExecId())
                .append("procTaskId", getProcTaskId())
                .append("varType", getVarType())
                .append("varName", getVarName())
                .append("varValue", getVarValue())
                .append("varDescription", getVarDescription())
                .append("createTime", getCreateTime())
                .append("lastUpdatedTime", getLastUpdatedTime())
                .toString();
    }
}
